package com.jctrip.hotel.source.model.rezen.resp;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.List;

/**
 * @Author：Haruhi
 * @description:
 * @Date：2023/9/25 15:57
 * @Package：com.jctrip.hotel.source.model.rezen.resp
 * @Project：hotel-main
 */
@NoArgsConstructor
@Data
public class ProductBriefListByCompanyIdResp implements Serializable {

    @JsonProperty("companyId")
    private Integer companyId;
    @JsonProperty("roomTypeList")
    private List<RoomTypeListBean> roomTypeList;

    @NoArgsConstructor
    @Data
    public static class RoomTypeListBean {
        @JsonProperty("bedTypeList")
        private List<BedTypeListBean> bedTypeList;
        @JsonProperty("groupId")
        private Integer groupId;
        @JsonProperty("hotelCode")
        private String hotelCode;
        @JsonProperty("hotelId")
        private Integer hotelId;
        @JsonProperty("imageList")
        private List<ImageListBean> imageList;
        @JsonProperty("occupancyMax")
        private Integer occupancyMax;
        @JsonProperty("productList")
        private List<ProductListBean> productList;
        @JsonProperty("roomArea")
        private String roomArea;
        @JsonProperty("roomFloors")
        private String roomFloors;
        @JsonProperty("roomtypCd")
        private String roomtypCd;
        @JsonProperty("roomtypId")
        private Integer roomtypId;
        @JsonProperty("roomtypNm")
        private String roomtypNm;
        @JsonProperty("windowType")
        private Integer windowType;

        @NoArgsConstructor
        @Data
        public static class BedTypeListBean {
            @JsonProperty("bedtypCode")
            private String bedtypCode;
            @JsonProperty("bedtypId")
            private Integer bedtypId;
            @JsonProperty("entityNm")
            private String entityNm;
            @JsonProperty("entityNums")
            private Integer entityNums;
            @JsonProperty("entitySize")
            private String entitySize;
        }

        @NoArgsConstructor
        @Data
        public static class ImageListBean {
            @JsonProperty("firstFlg")
            private Integer firstFlg;
            @JsonProperty("imageId")
            private Integer imageId;
            @JsonProperty("imageUrl")
            private String imageUrl;
        }

        @NoArgsConstructor
        @Data
        public static class ProductListBean {
            @JsonProperty("customFlag")
            private String customFlag;
            @JsonProperty("hourlyRoomInfo")
            private HourlyRoomInfoBean hourlyRoomInfo;
            @JsonProperty("isHourlyRoom")
            private Integer isHourlyRoom;
            @JsonProperty("memberRankCode")
            private String memberRankCode;
            @JsonProperty("productId")
            private Integer productId;
            @JsonProperty("rate")
            private RateBean rate;
            @JsonProperty("rateId")
            private Integer rateId;
            @JsonProperty("reservationNotice")
            private String reservationNotice;
            @JsonProperty("roomtypId")
            private Integer roomtypId;
            @JsonProperty("statusFlg")
            private Integer statusFlg;

            @NoArgsConstructor
            @Data
            public static class HourlyRoomInfoBean {
                @JsonProperty("endTime")
                private String endTime;
                @JsonProperty("startTime")
                private String startTime;
                @JsonProperty("stayHour")
                private Integer stayHour;
            }

            @NoArgsConstructor
            @Data
            public static class RateBean {
                @JsonProperty("hotelCode")
                private String hotelCode;
                @JsonProperty("paymentType")
                private Integer paymentType;
            }
        }
    }
}
